package com.openlogic.flow.service;

import java.util.List;

import com.mybatisflex.core.service.IService;
import com.openlogic.flow.domain.entity.FlowCategory;
import com.openlogic.flow.domain.query.FlowCategoryQuery;

/**
 * @ClassName: OpenLogicFlowCategoryService
 * @Description: 流程类型 服务接口层
 * @author weiyongpeng
 * @date 2025年2月11日 下午8:22:36
 */
public interface IFlowCategoryService extends IService<FlowCategory>{

	/**
	 * 描述：流程类型查询
	 * @Title: selectTreeDataList
	 * @param flowCategoryQuery
	 * @return
	 * @author weiyongpeng
	 * @date 2025年2月11日 下午8:22:28
	 */
	List<FlowCategory> selectTreeDataList(FlowCategoryQuery flowCategoryQuery);

	/**
	 * 描述：修改类型信息
	 * @Title: update
	 * @param flowCategory
	 * @return
	 * @author weiyongpeng
	 * @date 2025年2月11日 下午8:22:19
	 */
	boolean update(FlowCategory flowCategory);

	/**
	 * 描述：新增类型信息
	 * @Title: insert
	 * @param flowCategory
	 * @return
	 * @author weiyongpeng
	 * @date 2025年2月11日 下午8:22:56
	 */
	boolean insert(FlowCategory flowCategory);

	/**
	 * 描述：流程类型子节点查询
	 * @Title: selectByPid
	 * @param pid
	 * @return
	 * @author weiyongpeng
	 * @date 2025年2月11日 下午8:23:06
	 */
	List<FlowCategory> selectByPid(String pid);

	/**
	 * 描述：根据id删除流程类型
	 * @Title: delete
	 * @param id
	 * @return
	 * @author weiyongpeng
	 * @date 2025年2月11日 下午8:23:16
	 */
	boolean delete(String id);

	/**
	* 描述：查询流程分类详情
	* @Title: info
	* @param categoryId
	* @return
	* @author weiyongpeng
	* @date  2025年2月16日 下午5:57:54
	 */
	FlowCategory info(Integer categoryId);

	
	List<FlowCategory> excludeChild(Integer id);
}
